این کد برای کنترل صدا و میوت کردن از طریق روتاری انکودر و کلید فشاری طراحی شده است. در ادامه خلاصه عملکرد آن برای مقاله آورده شده است:
برای دانلود فایل کد پروژه اینجا کلیک کنید
کتابخانهها: کد از دو کتابخانه HID-Project.h
برای کنترل مدیا (حجم صدا، میوت و...) و Encoder.h
برای خواندن دادههای روتاری انکودر استفاده میکند.پین های ورودی:
پینهای 2 و 3 برای ورودی A و B روتاری انکودر.
پین 4 برای کلید میوت که بهصورت INPUT_PULLUP
تنظیم شده است.
عملکرد اصلی:
در تابع loop
، موقعیت انکودر خوانده میشود. اگر موقعیت جدید بیشتر از قبلی باشد، دستور افزایش صدا (MEDIA_VOLUME_UP
) و اگر کمتر باشد، دستور کاهش صدا (MEDIA_VOLUME_DOWN
) صادر میشود.
کلید میوت نیز با فشار دادن کلید، دستور HID_CONSUMER_MUTE
را ارسال میکند که صدای خروجی را قطع یا فعال میکند.
تأخیرها: تأخیر کوتاه (50 میلیثانیه) برای جلوگیری از ارسال مکرر دستورات در هنگام چرخاندن انکودر و تأخیر 200 میلیثانیه برای جلوگیری از ارسال چندین فرمان میوت ناشی از فشردن طولانی یا دوبلکلیک ناخواسته تنظیم شده است.